Repository navigation
feat(web): persist link card layouts and reclaim unused previews - #198
Merged
Merged
Conversation
Track browser draft references and captured link assets so scheduled maintenance can reclaim abandoned resources without removing retained content. Preserve card snapshots during draft restoration and reset obsolete composer suppression state. The additive schema migration requires rollback builds to retain support for the new resource tables.
Store presentation independently of captured metadata and preserve it through drafts, reading surfaces, share images, and portability. Reuse the existing composer menu and support metadata-preserving updates through HTTP and CLI.
This was referenced Nov 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link cards now preserve presentation preferences and retained-draft snapshots while abandoned capture media becomes eligible for automatic cleanup. Existing posts can change presentation without re-fetching or replacing their captured metadata.
Behavior
Upgrade impact
Migrations 13 and 14 add capture markers, browser-draft media references, and a display preference that defaults older records to the existing cover presentation. Original media bytes are not rewritten. Browser-draft references follow the existing 30-day draft lifetime; expired references receive a fresh 24-hour cleanup grace period. Older executables reject the upgraded schema, so rollback requires a compatible binary retaining schema support or a suitable pre-upgrade database backup.
Validation
go test ./...andgo vet ./...passed for the feature changes; targeted domain, media, and SQLite regressions passed after the cleanup/documentation follow-up.task lintpassed, covering the production build, Go vet,golangci-lint, full frontend ESLint, and TypeScript checks.--shard=2/2 --maxWorkers=2after correcting keyboard activation in the menu fixtures.Behavioral assertions were retained. The menu fixtures now focus the trigger, complete the keyboard event sequence, and await the rendered popup before selection. A pre-existing account-ordering test uses a controlled clock to avoid millisecond ties. The complete frontend suite and release pipeline were omitted because the selected tests exercise the affected API, composer, draft, account integration, card rendering, sharing, and localization consumers; backend coverage includes the full Go suite and focused concurrency checks.
Closes #196, Closes #197